/**
* @Title: SqlManagerTest.java
* @Package com.beetlsql
* @Description: TODO(用一句话描述该文件做什么)
* @author antch,861710865@qq.com
* @date 2017年7月7日 上午9:54:30
* @version V1.0
*/

package com.beetlsql;

import java.util.List;

import org.beetl.sql.core.ClasspathLoader;
import org.beetl.sql.core.ConnectionSource;
import org.beetl.sql.core.ConnectionSourceHelper;
import org.beetl.sql.core.Interceptor;
import org.beetl.sql.core.SQLLoader;
import org.beetl.sql.core.SQLManager;
import org.beetl.sql.core.UnderlinedNameConversion;
import org.beetl.sql.core.db.DBStyle;
import org.beetl.sql.core.db.MySqlStyle;
import org.beetl.sql.ext.DebugInterceptor;

/**
 * @ClassName: SqlManagerTest
 * @Description: TODO(sqlManagerTest,各个方法使用，学习)
 * @author antch,861710865@qq.com
 * @date 2017年7月7日 上午9:54:30
 *
 */

public class SqlManagerTest {

	/**
	 * @Title: main @Description: TODO(sqlManagerTest) @param @param args
	 * 设定文件 @return void 返回类型 @throws
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		SQLManager sqlManager = getSqlManager();
		// 分页查询
		List<User> list = sqlManager.all(User.class, 2, 2);
		System.out.println(list);
	}

	public static SQLManager getSqlManager() {

		String driver = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql:///spring?useUnicode=true&amp;characterEncoding=UTF-8";
		String userName = "root";
		String password = "root";
		ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);

		DBStyle dbStyle = new MySqlStyle();

		// sql語句放在class path的/sql目录下
		String sqlpath = "/sql";
		SQLLoader sqlLoader = new ClasspathLoader(sqlpath);

		// 数据库命名跟java命名一样，所以采用DefaultNameConversion，还有一个是UnderlinedNameConversion，下划线风格的，
		UnderlinedNameConversion nc = new UnderlinedNameConversion();

		// 最后，创建一个SQLManager,DebugInterceptor 不是必须的，但可以通过它查看sql执行情况
		SQLManager sqlManager = new SQLManager(dbStyle, sqlLoader, source, nc,
				new Interceptor[] { new DebugInterceptor() });

		return sqlManager;
	}
}
